| 1 | <?xml version="1.0" encoding="utf-8" ?> |
| 2 | <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" |
| 3 | "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"> |
| 4 | <html xmlns="http://www.w3.org/1999/xhtml"> |
| 5 | <head> |
| 6 | <title>Site Software</title> |
| 7 | <meta name="generator" content="muse.el" /> |
| 8 | <meta http-equiv="Content-Type" |
| 9 | content="text/html; charset=utf-8" /> |
| 10 | <link href="http://feeds.unknownlamer.org/rss/site-updates" |
| 11 | rel="alternate" type="application/rss+xml" title="Updates Feed" /> |
| 12 | |
| 13 | <link rel="stylesheet" href="default.css" media="screen" /> |
| 14 | </head> |
| 15 | <body> |
| 16 | <h1>Site Software</h1> |
| 17 | <div class="contents"> |
| 18 | <dl> |
| 19 | <dt> |
| 20 | <a href="#sec1">Basic Setup</a> |
| 21 | </dt> |
| 22 | <dt> |
| 23 | <a href="#sec2">Scripts</a> |
| 24 | </dt> |
| 25 | <dd> |
| 26 | <dl> |
| 27 | <dt> |
| 28 | <a href="#sec3">Book Database</a> |
| 29 | </dt> |
| 30 | <dt> |
| 31 | <a href="#sec4">RSS Feed</a> |
| 32 | </dt> |
| 33 | </dl> |
| 34 | </dd> |
| 35 | <dt> |
| 36 | <a href="#sec5">License</a> |
| 37 | </dt> |
| 38 | </dl> |
| 39 | </div> |
| 40 | |
| 41 | |
| 42 | <!-- Page published by Emacs Muse begins here --><h2><a name="sec1" id="sec1"></a> |
| 43 | Basic Setup</h2> |
| 44 | |
| 45 | <p class="first">I work on the static content of the site using <a href="http://mwolson.org/projects/EmacsMuse.html">Emacs Muse</a>. My muse |
| 46 | configuration is pretty long and available in my |
| 47 | <a href="http://unknownlamer.org/darcsweb/browse?r=site-emacs;a=headblob;f=/init.d/muse.el">site-emacs repository</a>. The site itself exists in a <a href="http://unknownlamer.org/darcsweb/browse?r=unknownlamer.org;a=summary">darcs repository</a> |
| 48 | which is a fork of the source repository I edit locally—the source |
| 49 | repository contains muse/image files while the site repository |
| 50 | contains html updates as a separate series of patches.</p> |
| 51 | |
| 52 | <p>This provides a very nice editing environment and makes publishing |
| 53 | fairly easy—I push edits from my laptop to my workstation and then |
| 54 | off to <a href="http://hcoop.net">HCoop</a> with the html updates. Almost no effort is spent dealing |
| 55 | with some dumb web interface or other pointless things making it much |
| 56 | easier for me to just write things and toss them up onto the web.</p> |
| 57 | |
| 58 | |
| 59 | <h2><a name="sec2" id="sec2"></a> |
| 60 | Scripts</h2> |
| 61 | |
| 62 | <p class="first">There are a few scripts and templates in the <a href="http://unknownlamer.org/darcsweb/browse?r=site-support;a=summary">darcsweb::site-support</a> |
| 63 | repository that I use to update the |
| 64 | site. <a href="http://unknownlamer.org/darcsweb/browse?r=site-support;a=headblob;f=/update.sh">darcsweb::site-support/update.sh</a> automates the process of |
| 65 | sending patches off to the server via afs.</p> |
| 66 | |
| 67 | <h3><a name="sec3" id="sec3"></a> |
| 68 | Book Database</h3> |
| 69 | |
| 70 | <p><a href="Book%20List.html">Book List</a> is autogenerated by <a href="http://unknownlamer.org/darcsweb/browse?r=site-support;a=headblob;f=/books.lisp">darcsweb::site-support/books.lisp</a> which |
| 71 | reads a template and a small sexp <em>database</em> of book entries and spits |
| 72 | out a muse file which is not kept under VC. This works well for me |
| 73 | currently, but I intend to eventually <em>upgrade</em> this simple system to an |
| 74 | <a href="http://common-lisp.net/project/elephant/">Elephant</a> object database with a <a href="http://common-lisp.net/project/mcclim/">CLIM</a> frontend for editing |
| 75 | entries. I'll probably end up writing a minimal database manager for |
| 76 | the sexp based system first.</p> |
| 77 | |
| 78 | |
| 79 | <h3><a name="sec4" id="sec4"></a> |
| 80 | RSS Feed</h3> |
| 81 | |
| 82 | <p class="first">The site rss feed is generated by <a href="http://unknownlamer.org/darcsweb/browse?r=site-support;a=headblob;f=/rss.lisp">darcsweb::site-support/rss.lisp</a>. It |
| 83 | fetches the darcs xml changelog for interesting files and then spits |
| 84 | out a tolerable feed with automagically generated links from <code>*.muse</code> to |
| 85 | <code>*.html</code>. A <a href="http://unknownlamer.org/darcsweb/browse?r=site-support;a=headblob;f=/update-rss-binary">dumped binary</a> is run from a darcs hook on the main |
| 86 | repository that handily updates the feed whenever I commit.</p> |
| 87 | |
| 88 | <p><code>apply posthook update-site-rss |
| 89 | apply run-posthook</code></p> |
| 90 | |
| 91 | <p>Boring old Apache is used to serve up the generated feed. The feed |
| 92 | stays updated when I update, and Apache deals with properly letting |
| 93 | readers know when the file last changed and whatnot.</p> |
| 94 | |
| 95 | |
| 96 | |
| 97 | <h2><a name="sec5" id="sec5"></a> |
| 98 | License</h2> |
| 99 | |
| 100 | <p class="first">All of the scripts used to generate the site are in the public domain |
| 101 | unless otherwise mentioned in the files themselves. To use them |
| 102 | anywhere else would require modification, but a few chunks of code |
| 103 | could be generally useful for other things.</p> |
| 104 | |
| 105 | |
| 106 | <!-- Page published by Emacs Muse ends here --> |
| 107 | |
| 108 | <p class="cke-buttons"> |
| 109 | <!-- validating badges, any browser, etc --> |
| 110 | <a href="http://validator.w3.org/check/referer"><img |
| 111 | src="http://www.w3.org/Icons/valid-xhtml10" |
| 112 | alt="Valid XHTML 1.0!" /></a> |
| 113 | |
| 114 | <a href="http://www.anybrowser.org/campaign/"><img |
| 115 | src="img/buttons/w3c_ab.png" alt="[ Viewable With Any Browser |
| 116 | ]" /></a> |
| 117 | |
| 118 | <a href="http://www.debian.org/"><img |
| 119 | src="img/buttons/debian.png" alt="[ Powered by Debian ]" /></a> |
| 120 | |
| 121 | <a href="http://hcoop.net/"> |
| 122 | <img src="img/buttons/hcoop.png" |
| 123 | alt="[ Hosted by HCoop]" /> |
| 124 | </a> |
| 125 | |
| 126 | <a href="http://www.fsf.org/register_form?referrer=114"> |
| 127 | <img src="img/buttons/fsf_member.png" |
| 128 | alt="[ FSF Associate Member ]" /> |
| 129 | </a> |
| 130 | </p> |
| 131 | |
| 132 | <p class="cke-footer"><captain_krunk> ntk is currently using "telnet fyodor 25" to send email |
| 133 | </p> |
| 134 | <p class="cke-timestamp">Last Modified: |
| 135 | September 28, 2008</p> |
| 136 | </body> |
| 137 | </html> |